package com.fortune.service;

import java.util.List;

import com.fortune.dto.in.client.ClientAddDto;
import com.fortune.dto.in.client.ClientEditDto;
import com.fortune.vo.cPriceMgt.CClientList;
import org.apache.ibatis.annotations.Param;

import com.fortune.vo.client.Client;
import com.fortune.vo.client.ClientDetail;




public interface ClientService {
    /**
     * 有效客户
     * @return
     */
    List<Client> findEffectiveClient(@Param("did") String did,
                                     @Param("duid") String duid);

    /**
     * 无效客户
     * @return
     */
    List<Client> findInvalidClient(@Param("did") String did,
                                   @Param("duid") String duid);

    /**
     * 全部客户
     * @return
     */
    List<Client> findAllClient(@Param("mid") String mid,@Param("did") String did);

    /**
     * 根据客户ID查询客户详情
     * @param clientId
     * @return
     */
    ClientDetail findClientDetailByClientId(String did, String clientId);

    /**
     * 查询历史订单
     * @param clientId
     * @return
     */
    Integer historyOrderNum(String clientId, String did);

    /**
     * 添加客户
     * @param clientAddDto
     * @return
     */
    int addClient(ClientAddDto clientAddDto,
                  @Param("id") String id);

    /**
     * 添加客户维护信息
     * @param did
     * @param id
     * @param number
     * @param userId
     * @return
     */
    int addCAccountOther(String did, String id, String number, float returnPeriod, String userId);

    /**
     * 查询客户id
     * @param principalPhone
     * @return
     */
    String findClientId(@Param("principalPhone") String principalPhone);

    /**
     * 建立客户和经销商的关系
     * @param did
     * @param id
     * @return
     */
    int addDCRelation(@Param("did") String did,
                      @Param("id") String id);

    /**
     * 更改客户信息
     * @param clientEditDto
     * @return
     */
    int editClient(ClientEditDto clientEditDto, String did);

    /**
     * 查询有效的总条数
     * @param did
     * @return
     */
    int findEffectiveAcount(@Param("did") String did,
                            @Param("duid") String duid);

    /**
     * 查询无效客户的总条数
     * @return
     */
    int findInvalidAcount(@Param("did") String did,
                          @Param("duid") String duid);

    /**
     * 根据厂商id和经销商id查询客户信息
     */
    List<CClientList> queryClientList(String dealerId);

    /**
     * 验证手机号是否重复添加
     * @param phone
     * @return
     */
    Client verifyPhoneRepeat(@Param("phone") String phone);

    /**
     * 客户停用
     * @param clientId
     * @param did
     * @return
     */
    int editClientDisabled(@Param("clientId") String clientId,
                           @Param("did") String did);

    /**
     * 客户启用
     * @param clientId
     * @param did
     * @return
     */
    int editClientEnable(String clientId, String did);
}

